Asynchronous Functional Session Types
نویسندگان
چکیده
Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static type checking. Applications include network protocols, business processes, and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifies and extends previous work. There are three main contributions. First: an operational semantics with buffered channels, instead of the synchronous communication of previous work. Second: session type manipulation by means of the standard structures of a linear type theory, rather than by means of new forms of typing judgement. Third: a notion of subtyping, including the standard subtyping relation for session types (imported into the functional setting) and a novel form of subtyping between standard and linear function types. Our new approach significantly simplifies session types in the functional setting, clarifies their essential features, and provides a secure foundation for language developments such as polymorphism and object-orientation, as well as further forms of static analysis including estimating the size of communication buffers.
منابع مشابه
Linear type theory for asynchronous session types
Session types support a type-theoretic formulation of structured patterns of communication, so that the communication behaviour of agents in a distributed system can be verified by static type checking. Applications include network protocols, business processes, and operating system services. In this paper we define a multithreaded functional language with session types, which unifies, simplifi...
متن کاملSession Types in Haskell Updating Message Passing for the 21st Century
Session Types allow plans of conversation between two concurrent processes to be treated as types. Type checking then ensures that communication between processes is safe: i.e. it obeys the protocol specified by the session type. Thus Session Types offer a means to establish conformance to protocols in both distributed applications and multi-threaded programming. We incorporate Session Types in...
متن کاملA Semantic Deconstruction of Session Types
Doctoral Thesis A Semantic Deconstruction of Session Types by Alceste Scalas This work investigates the semantic foundations of binary session types, by revisiting them in the abstract setting of labelled transition systems. The main insights and contributions are: • a semantically unified approach to the study of session types and CCS processes with synchronous and asynchronous semantics — the...
متن کاملAsynchronous Session Types: Exceptions and Multiparty Interactions
Session types are a formalism for structuring communication based on the notion of session: the structure of a conversation is abstracted as a type which is then used as a basis of validating programs through an associated type discipline. While standard session types have proven to be able to capture many real scenarios, there are cases where they are not powerful enough for describing and val...
متن کاملUndecidability of Asynchronous Session Subtyping
The most prominent proposals of subtyping for asynchronous session types are by Mostrous and Yoshida for binary sessions, by Chen et al. for binary sessions under the assumption that every message emitted is eventually consumed, and by Mostrous et al. for multiparty session types. We prove that, differently from what stated or conjectured in above proposals, all of these three subtyping relatio...
متن کامل